package com.vhdadw.service;

import com.vhdadw.controller.request.ConfirmOrderRequest;
import com.vhdadw.controller.request.ProductOrderPageRequest;
import com.vhdadw.enums.ProductOrderPayTypeEnum;
import com.vhdadw.model.EventMessage;
import com.vhdadw.utils.JsonData;

import java.util.Map;

public interface ProductOrderService {

    /**
     * 分页查询
     * @param productOrderPageRequest
     * @return
     */
    Map<String, Object> page(ProductOrderPageRequest productOrderPageRequest);

    /**
     * 查询订单状态
     * @param outTradeNo
     * @return
     */
    String queryProductOrderState(String outTradeNo);

    JsonData confirmOrder(ConfirmOrderRequest orderRequest);

    boolean closeProductOrder(EventMessage eventMessage);

    /**
     * 处理微信回调通知
     * @param payType
     * @param paramsMap
     */
    JsonData processOrderCallbackMsg(ProductOrderPayTypeEnum payType,Map<String,String> paramsMap);

    /**
     * 处理 队列里的订单
     * @param eventMessage
     */
    void handleProductOrderMessage(EventMessage eventMessage);
}
